package cn.jingyuan.bee.utils.getter;

import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * 数组类型的 Get 接口
 */
public interface ArrayTypeGetter {

    /**
     * 获取 Object 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    String[] getObjects(String key);

    /**
     * 获取 String 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    String[] getStrings(String key);

    /**
     * 获取 Integer 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    Integer[] getIntegers(String key);

    /**
     * 获取 Short 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    Short[] getShorts(String key);

    /**
     * 获取 Boolean 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    Boolean[] getBooleans(String key);

    /**
     * 获取 Long 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    Long[] getLongs(String key);

    /**
     * 获取 Character 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    Character[] getChars(String key);

    /**
     * 获取 Double 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    Double[] getDoubles(String key);

    /**
     * 获取 Byte 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    Byte[] getBytes(String key);

    /**
     * 获取 BigInteger 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    BigInteger[] getBigIntegers(String key);

    /**
     * 获取 BigDecimal 型属性值数组
     *
     * @param key 属性名
     *
     * @return 属性值列表
     */
    BigDecimal[] getBigDecimals(String key);

}
